# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

# Due to duplicate file names, we compile libavutil/x86 in its own
# moz.build file.
if CONFIG['FFVPX_ASFLAGS']:
    DIRS += ['x86']

SharedLibrary('mozavcodec')
SOURCES += [
    'allcodecs.c',
    'avpacket.c',
    'avpicture.c',
    'bitstream.c',
    'bitstream_filter.c',
    'bitstream_filters.c',
    'bsf.c',
    'codec_desc.c',
    'decode.c',
    'dummy_funcs.c',
    'flac.c',
    'flac_parser.c',
    'flacdata.c',
    'flacdec.c',
    'flacdsp.c',
    'golomb.c',
    'h264pred.c',
    'imgconvert.c',
    'log2_tab.c',
    'mathtables.c',
    'null_bsf.c',
    'options.c',
    'parser.c',
    'profiles.c',
    'pthread.c',
    'pthread_frame.c',
    'pthread_slice.c',
    'qsv_api.c',
    'raw.c',
    'reverse.c',
    'utils.c',
    'videodsp.c',
    'vorbis_parser.c',
    'vp56rac.c',
    'vp8.c',
    'vp8_parser.c',
    'vp8dsp.c',
    'vp9.c',
    'vp9_parser.c',
    'vp9_superframe_split_bsf.c',
    'vp9block.c',
    'vp9data.c',
    'vp9dsp.c',
    'vp9dsp_10bpp.c',
    'vp9dsp_12bpp.c',
    'vp9dsp_8bpp.c',
    'vp9lpf.c',
    'vp9mvs.c',
    'vp9prob.c',
    'vp9recon.c',
    'xiph.c'
]

SYMBOLS_FILE = 'avcodec.symbols'
NO_VISIBILITY_FLAGS = True

# GCC 10 defaults -fno-common, we don't care to solve this "properly" yet
# so use GCC < 10 behavior.
if CONFIG['GNU_CC'] and CONFIG['CC_VERSION'] >= '10.0.0':
    CFLAGS += ['-fcommon']

USE_LIBS += [
     'mozavutil'
]

include("../ffvpxcommon.mozbuild")
